package Repositorio;

import Basico.Cliente;
import Erro.ConexaoException;
import Erro.RepositorioException;
import java.util.ArrayList;

/**
 *
 * @author Tiago
 */
public interface RepositorioCliente {
    /**
     * Insere os dados de um Cliente no Banco de Dados
     * @param cli
     * @throws RepositorioException
     * @throws ConexaoException 
     */
    public void Inserir(Cliente cli) throws RepositorioException,ConexaoException;
    
    /**
     * Altera o nome do Solisitante no Banco de Dados
     * @param cli
     * @throws RepositorioException
     * @throws ConexaoException 
     */
    public void AlterarSolisitar(Cliente cli) throws RepositorioException,ConexaoException;
    
    /**
     * Alterar o nome do Cliente no Banco de Dados
     * @param cli
     * @throws RepositorioException
     * @throws ConexaoException 
     */
    public void AlterarCliente(Cliente cli) throws RepositorioException,ConexaoException;
    
    /**
     * Altera o Status no Banco de Dado
     * @param cli
     * @throws RepositorioException
     * @throws ConexaoException 
     */
    public void AlterarStatus (Cliente cli) throws RepositorioException,ConexaoException;
    
    /**
     * Exclui os dados de um cliente no Banco de Dados via codigo
     * @param codigo
     * @throws RepositorioException
     * @throws ConexaoException 
     */
    public void Excluir(int codigo) throws RepositorioException,ConexaoException;
    
    /**
     * Lista todos os Clientes do Banco de Dados
     * @return
     * @throws ConexaoException
     * @throws RepositorioException 
     */
    public ArrayList<Cliente> listarCliente() throws ConexaoException,RepositorioException;
    
    /**
     * Pesquisa o Cliente do Banco de Dados
     * @param codigo
     * @return
     * @throws ConexaoException
     * @throws RepositorioException 
     */
    public Cliente pesquisar(String codigo) throws ConexaoException,RepositorioException;
    
    
}
